/* eslint-disable @typescript-eslint/no-explicit-any */
/*
 *  Copyright 2021 Collate
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *  http://www.apache.org/licenses/LICENSE-2.0
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

 /**
 * 平台服务器安全管理功能的配置
 */
export interface SecretsManagerConfiguration {
    /**
     * 安全管理实现使用的额外参数
     */
    parameters?: { [key: string]: any };
    /**
     * Prefix to be added to the secret key ID: `/<prefix>/<clusterName>/<key>`
     */
    prefix?: string;
    /**
     * 平台安全管理提供者，确保配置的安全管理提供者与平台服务器上配置的相同
     */
    secretsManager?: SecretsManagerProvider;
    /**
     * Add tags to the created resource, e.g., in AWS. Format is `[key1:value1,key2:value2,...]`
     */
    tags?: string[];
}

/**
 * 平台安全管理提供者，确保配置的安全管理提供者与平台服务器上配置的相同
 *
 * 平台安全管理提供者. 确保配置的安全管理提供者与在平台服务器上配置的相同
 */
export enum SecretsManagerProvider {
    Aws = "aws",
    AwsSsm = "aws-ssm",
    AzureKv = "azure-kv",
    DB = "db",
    InMemory = "in-memory",
    ManagedAws = "managed-aws",
    ManagedAwsSsm = "managed-aws-ssm",
    ManagedAzureKv = "managed-azure-kv",
}
